package org.example.singletonDemo;

public class SingletonClass {

    private String name; // 变量用于识别是否是新建的实例
    private static SingletonClass myclass; // 静态变量, 用于存放实例

    // 私有的构造函数, 不能从SingletonClass 以外去new一个实例
    private  SingletonClass(String txt){
        this.name=txt;
    }

    public void printName(){
        System.out.println(this.name);
    }

    // 静态方法, 用于提供给外部调用获取类型实例
    public static SingletonClass init(String txt){
        // 判断静态变量myclass是否已有实例，如果没有则创建一个实例
        if(myclass==null){ // 第二次调用myclass 不为空, 不会再次执行实例化，保证单一一个实例
            myclass=new SingletonClass(txt);
        }
        // 返回已存的实例
        return myclass;
    }
}
